Use REST endpoints for PR draft state transitions#2816
Conversation
Replace GraphQL draft-state mutations with REST calls in both update paths and add coverage for no-op and 403/404 handling in general and granular tools. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
title: "Prerendering"
|
| Feature | Netlify Prerender extension | Prerender.io extension |
|---|---|---|
| Best for | Simple, self-serve setups | Business-critical, complex configurations |
| Setup complexity | Minimal configuration | Advanced configuration available |
| API key required | No third-party API key needed | Prerender.io API key required |
| Infrastructure | Netlify Edge Functions and Functions | External service with vendor support |
| Visibility | Full logs and metrics in Netlify | Prerender.io dashboard + Netlify logs |
| Support level | Netlify documentation and community | Vendor-level support |
| Enterprise features | Basic prerendering | Advanced configuration and reliability |
| Node.js requirement | Version 20 or later | No specific requirement |
| Recommended for | Most users, simple to moderate needs | Enterprise use cases, complex requirements |
Check prerendering needs
Not sure if your site/app needs prerendering?
Find out using our prerendering checker tool and your project URL.
Why does my project need prerendering?
SPAs (single-page applications) rely on client-side JavaScript to render pages, leaving the HTML body mostly empty. While this works for browsers and major search engines like Google, many tools, such as AI agents, chat services, and crawlers, cannot run JavaScript. Even search engines that do run JavaScript may penalize slow-loading pages, lowering SEO scores.
Websites using Server-Side Rendering (SSR) or Static Site Generation (SSG) avoid these issues, though some use a hybrid approach.
Netlify Prerender extension
Pricing Information: The Prerender extension replaces the legacy beta prerendering feature, which is now deprecated. Learn more about legacy feature's deprecation timeline.
As a Team Owner, you can install the Prerender extension for your team. Then you or any developer on your team can enable the extension for a project they work on.
Video: Watch video
Important - Node.js version requirement
The Netlify Prerender extension requires Node.js version 20 or later. Using an older version may cause the prerender function to fail with errors such as Chromium launch failures. Make sure your project is configured to use supported Node.js versions. You can set the version using a .node-version, .nvmrc file, or NODE_VERSION environment variable.
To set up the Netlify Prerender extension, follow these steps:
- If necessary, disable the legacy built-in Prerendering feature. To disable, go to
NavigationPath Component:
Project configuration > Build & deploy > Post processing > Prerendering
.
2. To install the Prerender extension, go to https://app.netlify.com/extensions/prerender.
3. All your projects will now show the Prerender extension under Extensions in the left sidebar of your project navigation. To enable for a specific project, select the Prerender extension and Enable prerendering.
4. To activate the extension, save your changes and re-deploy your project.
To learn more about advanced configuration options and how this extension works, check out the extension details page.
How it works
Once enabled, the Netlify prerender extension adds two components to your site:
- Edge function - Runs only for relevant requests (made by a relevant user-agent for HTML content) and rewrites these requests to the prerender function.
- Serverless function - Uses a headless browser to load the requested page, and returns the fully-rendered HTML with proper caching headers.
Your human visitors continue to load your site normally, while crawlers and AI tools receive HTML with all content already rendered. There is no additional cost other than regular billing for the functions invoked, based on your plan. Since the functions are invoked in your account, you get full visibility with logs and metrics - just like for any other function you have deployed.
This extension uses sensible defaults, and very often requires no additional configuration.
After installing the extension to your team, you need to enable it for a specific project.
All other configuration changes beyond enabling/disabling do not require a re-deploy, as these are stored in a blob object.
To learn more about configuration options, check out the extension details page.
External services for prerendering
You can use an external service such as the Prerender.io extension with your Netlify site/app for advanced prerendering needs if you have a Netlify Pro plan or Enterprise plan.
If you are using an external service that relied on the legacy in-app Netlify Prerendering feature (not installed as a Netlify extension), then you will need to update or migrate your prerendering service.
Note - Set up external service before January 6, 2026?
If you set up an external service before January 6, 2026, then it's likely the external service relies on Netlify's in-app legacy prerendering feature, which is deprecated and will no longer work starting on January 20, 2026 for users on free plans. Learn more about how to migrate using the Prerender.io extension or check the full deprecation schedule in this changelog post.
For additional help, reach out to Netlify Support.
Set up the Prerender.io extension
To set up the Prerender.io extension, follow these steps:
- Go to https://app.netlify.com/extensions/prerenderio and select Install.
- For the Netlify project where you want to install the Prerender.io extension, from the left sidebar of your project overview, select Extensions, then choose Prerender.io and Enable Extension.
- From your Prerender.io dashboard, copy your API key. You must sign up with Prerender.io and choose a plan to get an API key. Learn more from the Prerender.io docs.
- On your Netlify project dashboard's Prerender.io extension page, paste your API key under Prerender.io token and confirm with Save.
- Be sure to save your changes and re-deploy your project to activate the extension.
You have more custom configuration options available from your Prerender.io dashboard. Check out the Prerender.io docs for more information.
Migrate from the legacy Netlify prerendering feature
If you set up the Prerender.io extension before January 6, 2026, then you will need to make some updates to your setup so that the extension doesn't rely on the Netlify legacy prerendering feature, which is deprecated and will stop working on January 20, 2026 for users on the free plan.
Learn more about migrating your Prerender.io extension or the full deprecation schedule.
For more help migrating your Prerender.io extension, reach out to Netlify Support.
Legacy Netlify Prerendering
This feature is deprecated. We recommend disabling it and using another prerendering option. Learn more about the deprecation schedule in our changelog post or how to migrate.
To disable this feature, go to
NavigationPath Component:
Project configuration > Build & deploy > Post processing > Prerendering
.
If enabled, our built-in prerendering service will cache prerendered pages for between 24 and 48 hours; this is not adjustable.
How it works
This is how our Legacy Netlify Prerendering service works:
- When a request hits one of our CDN servers, our CDN software determines if it's a prerendering request from a crawler.
- If prerendering is enabled for your site, our cache servers will contact the prerendering backend straight from our CDN nodes instead of serving the normal cached request.

Summary
Notes